table of contents
ioperm(2) | 2007-10-27-16:31 | ioperm(2) |
Назва¶
ioperm - встановлює дозволи вводу-виводу портів
Стислий огляд¶
#include <unistd.h> /* для libc5 */
#include <sys/io.h> /* для glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
Опис¶
Іoperm встановлює біти прав доступу процесу до портів (за адресою) num байтів, починаючи з адреси порту from. Значення дозволу будучи turn_on. Для використання функції ioperm необхідні права root.
Таким чином, можна задати права доступу тільки першим 0x3ff портам вводу-виводу. Для роботи з іншими портами необхідно використовувати функцію iopl. Права не успадковуються після fork(), але успадковуються при exec(). Це можна використати для надання доступу до портів вводу-виводу непривілейованим процесам.
Повернені значення¶
При вдалому завершенні виклику, повернене значення дорівнюватиме 0. При помилці воно дорівнює -1, і змінна errno також отримає значення помилки.
Коди помилок¶
Відповідність стандартам¶
ioperm являється специфічним для Linux викликом. Не рекомендовано використовувати її у програмах, стерпних на переносних на інші системи програмах.
Зауваження¶
Libc5 розглядає дану функцію як системний виклик і містить прототип для неї у <unistd.h>. У Glibc1 цього прототипу немає. У Glibc2 цей прототип знаходиться в обох <sys/io.h> та <sys/perm.h>. Не використовуйте другий варіант, він існує тільки для i386.
Дивіться також¶
2007-10-27-16:31 | © 2005-2007 DLOU, GNU FDL |